﻿2026-06-04T14:33:01.7950012Z ##[group]Run ./traceable-reqs lint || true
2026-06-04T14:33:01.7950647Z [36;1m./traceable-reqs lint || true[0m
2026-06-04T14:33:01.7973496Z shell: /usr/bin/bash -e {0}
2026-06-04T14:33:01.7973965Z ##[endgroup]
2026-06-04T14:33:01.8196866Z Requirement quality findings (17); 129 requirements queued for agent review:
2026-06-04T14:33:01.8199371Z   [must] requirement_quality REQ-API-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T14:33:01.8201510Z   [must] requirement_quality REQ-HAZARD-CONFLICT-BOTH-PRESERVED criterion=length — title is 29 words; want 3..=25
2026-06-04T14:33:01.8203518Z   [must] requirement_quality REQ-HAZARD-DAEMON-SCHED-NONBLOCKING criterion=length — title is 32 words; want 3..=25
2026-06-04T14:33:01.8205908Z   [must] requirement_quality REQ-HAZARD-ENVELOPE-PARSER-SAFE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T14:33:01.8208125Z   [must] requirement_quality REQ-HAZARD-GEN-START-NOW criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T14:33:01.8209987Z   [must] requirement_quality REQ-HAZARD-PAIR-RATE-LIMIT criterion=length — title is 37 words; want 3..=25
2026-06-04T14:33:01.8211744Z   [must] requirement_quality REQ-HAZARD-PAIR-SEED-ROTATION criterion=length — title is 33 words; want 3..=25
2026-06-04T14:33:01.8214162Z   [must] requirement_quality REQ-HAZARD-PAIR-TRANSCRIPT-BIND criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T14:33:01.8216613Z   [must] requirement_quality REQ-HAZARD-PSYCHE-OUTBOUND-PROXY criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T14:33:01.8218485Z   [must] requirement_quality REQ-HAZARD-PSYCHE-OUTBOUND-PROXY criterion=length — title is 27 words; want 3..=25
2026-06-04T14:33:01.8220185Z   [must] requirement_quality REQ-HAZARD-WAN-ORIGIN-AUTH criterion=length — title is 37 words; want 3..=25
2026-06-04T14:33:01.8221529Z   [must] requirement_quality REQ-INST-15 criterion=length — title is 32 words; want 3..=25
2026-06-04T14:33:01.8222970Z   [must] requirement_quality REQ-INSTALL-2 criterion=length — title is 2 word(s); want 3..=25
2026-06-04T14:33:01.8224992Z   [must] requirement_quality REQ-MANIFEST-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T14:33:01.8227391Z   [must] requirement_quality REQ-MIGRATE-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T14:33:01.8228809Z   [must] requirement_quality REQ-SEAM-SPAWN criterion=length — title is 2 word(s); want 3..=25
2026-06-04T14:33:01.8230314Z   [must] requirement_quality REQ-STORE-1 criterion=length — title is 34 words; want 3..=25
2026-06-04T14:33:01.8230342Z 
2026-06-04T14:33:01.8230842Z # Requirement quality review
2026-06-04T14:33:01.8230864Z 
2026-06-04T14:33:01.8231928Z You are reviewing 129 requirement(s) from `traceable-reqs.toml` against a quality
2026-06-04T14:33:01.8233031Z rubric. Deterministic checks (length, contains-and, tbd-todo, duplicate-titles,
2026-06-04T14:33:01.8234684Z trailing-etc) have already run and surfaced as `requirement_quality` findings on
2026-06-04T14:33:01.8235458Z this command's output. Your task is the rubric items below.
2026-06-04T14:33:01.8235480Z 
2026-06-04T14:33:01.8235953Z ## Rubric
2026-06-04T14:33:01.8235975Z 
2026-06-04T14:33:01.8237248Z - **singular** — describes one capability; no smuggled "and"/"or" across distinct actions.
2026-06-04T14:33:01.8238380Z - **verifiable** — states an observable behavior a test or reviewer could confirm.
2026-06-04T14:33:01.8239583Z - **atomic** — cannot be split into two requirements without losing meaning.
2026-06-04T14:33:01.8240334Z - **active-voice** — clear subject and active verb.
2026-06-04T14:33:01.8240361Z 
2026-06-04T14:33:01.8241518Z If a criterion is borderline or doesn't apply, abstain — only emit findings for
2026-06-04T14:33:01.8241981Z clear concerns.
2026-06-04T14:33:01.8242004Z 
2026-06-04T14:33:01.8242474Z ## Requirements
2026-06-04T14:33:01.8242824Z 
2026-06-04T14:33:01.8243308Z ### REQ-ARCH-1
2026-06-04T14:33:01.8243928Z - Title: Many small acyclically-layered crates
2026-06-04T14:33:01.8244429Z - Required stages: impl
2026-06-04T14:33:01.8244451Z 
2026-06-04T14:33:01.8244895Z ### REQ-ARCH-2
2026-06-04T14:33:01.8245770Z - Title: Public SDK surface is spt-proto, spt-runtime, spt-msg
2026-06-04T14:33:01.8246264Z - Required stages: impl
2026-06-04T14:33:01.8246297Z 
2026-06-04T14:33:01.8246744Z ### REQ-ARCH-3
2026-06-04T14:33:01.8247825Z - Title: Wire-protocol version independent of crate semver, N-1 compat window
2026-06-04T14:33:01.8248341Z - Required stages: impl, unit
2026-06-04T14:33:01.8248361Z 
2026-06-04T14:33:01.8248816Z ### REQ-ARCH-4
2026-06-04T14:33:01.8249881Z - Title: Copy-verbatim the commodity layer from the sister project
2026-06-04T14:33:01.8250387Z - Required stages: impl, unit
2026-06-04T14:33:01.8250407Z 
2026-06-04T14:33:01.8250854Z ### REQ-DAEMON-1
2026-06-04T14:33:01.8251675Z - Title: One per-machine spt-daemon owning all per-machine state
2026-06-04T14:33:01.8252214Z - Required stages: impl, unit, int
2026-06-04T14:33:01.8252236Z 
2026-06-04T14:33:01.8252687Z ### REQ-DAEMON-2
2026-06-04T14:33:01.8253344Z - Title: Broker/brain split for seamless self-update
2026-06-04T14:33:01.8253884Z - Required stages: impl, unit, int
2026-06-04T14:33:01.8253905Z 
2026-06-04T14:33:01.8254348Z ### REQ-DAEMON-3
2026-06-04T14:33:01.8255103Z - Title: Any api invocation auto-starts the daemon if absent
2026-06-04T14:33:01.8255611Z - Required stages: impl, unit, int
2026-06-04T14:33:01.8255631Z 
2026-06-04T14:33:01.8256081Z ### REQ-DAEMON-4
2026-06-04T14:33:01.8256662Z - Title: Honor every KNOWN-HAZARDS invariant
2026-06-04T14:33:01.8257168Z - Required stages: impl, unit, int
2026-06-04T14:33:01.8257187Z 
2026-06-04T14:33:01.8257629Z ### REQ-STORE-1
2026-06-04T14:33:01.8263010Z - Title: spt-store::BranchStore (git branch as versioned KV; commit=checkpoint/tip=resume, atomic multi-key, merge-native sync) is the substrate for coarse/durable/audited state (context, registry snapshot+distribution, daemon checkpoint); hot paths (B5 fsync journal) + indexed queries (SQLite spool) excluded (ADR-0011)
2026-06-04T14:33:01.8263553Z - Required stages: impl, unit
2026-06-04T14:33:01.8263574Z 
2026-06-04T14:33:01.8264206Z ### REQ-MANIFEST-1
2026-06-04T14:33:01.8265138Z - Title: Per-adapter manifest with adapter_name and min_spt_core_version
2026-06-04T14:33:01.8265663Z - Required stages: doc, impl, unit
2026-06-04T14:33:01.8265684Z 
2026-06-04T14:33:01.8266135Z ### REQ-SEAM-SPAWN
2026-06-04T14:33:01.8266630Z - Title: spawn-session seam
2026-06-04T14:33:01.8267134Z - Required stages: impl, unit
2026-06-04T14:33:01.8267156Z 
2026-06-04T14:33:01.8267622Z ### REQ-SEAM-POSTSPAWN
2026-06-04T14:33:01.8268276Z - Title: post-spawn / api bind seam with boot nonce
2026-06-04T14:33:01.8268764Z - Required stages: impl, unit
2026-06-04T14:33:01.8268784Z 
2026-06-04T14:33:01.8269291Z ### REQ-SEAM-PSYCHE
2026-06-04T14:33:01.8270221Z - Title: spawn-psyche seam (fresh + resume templates)
2026-06-04T14:33:01.8270790Z - Required stages: impl, unit, int
2026-06-04T14:33:01.8270811Z 
2026-06-04T14:33:01.8271296Z ### REQ-SEAM-HISTORY
2026-06-04T14:33:01.8272238Z - Title: History subsystem (fetcher / locate-normalize / native store)
2026-06-04T14:33:01.8272791Z - Required stages: impl, unit, int
2026-06-04T14:33:01.8272813Z 
2026-06-04T14:33:01.8273295Z ### REQ-SEAM-ACTIVITY
2026-06-04T14:33:01.8274221Z - Title: Activity/idle reported via api sentinels, not PTY quiescence
2026-06-04T14:33:01.8274741Z - Required stages: impl, unit
2026-06-04T14:33:01.8274763Z 
2026-06-04T14:33:01.8275229Z ### REQ-SEAM-INJECT
2026-06-04T14:33:01.8276067Z - Title: inject-input methods configurable per activity-state
2026-06-04T14:33:01.8276582Z - Required stages: impl, unit
2026-06-04T14:33:01.8276615Z 
2026-06-04T14:33:01.8277084Z ### REQ-SEAM-RESUME
2026-06-04T14:33:01.8278029Z - Title: resume-session seam (fresh-with-preload / continue-existing)
2026-06-04T14:33:01.8278546Z - Required stages: impl, unit
2026-06-04T14:33:01.8278763Z 
2026-06-04T14:33:01.8279339Z ### REQ-SEAM-CAPABILITY
2026-06-04T14:33:01.8280213Z - Title: Hostable endpoint-types capability declaration
2026-06-04T14:33:01.8280717Z - Required stages: impl, unit
2026-06-04T14:33:01.8280737Z 
2026-06-04T14:33:01.8281218Z ### REQ-SEAM-UPDATE
2026-06-04T14:33:01.8282023Z - Title: Adapter-update avenue (file-pull / delegated command)
2026-06-04T14:33:01.8282524Z - Required stages: impl, unit
2026-06-04T14:33:01.8282545Z 
2026-06-04T14:33:01.8293556Z ### REQ-API-1
2026-06-04T14:33:01.8294769Z - Title: api prefix and adapter_name on every machinery invocation
2026-06-04T14:33:01.8295294Z - Required stages: impl, unit, int
2026-06-04T14:33:01.8295316Z 
2026-06-04T14:33:01.8295746Z ### REQ-API-2
2026-06-04T14:33:01.8296808Z - Title: The api subcommand surface (bind/listen/poll/state/worker/boundary/...)
2026-06-04T14:33:01.8297315Z - Required stages: impl, unit, int
2026-06-04T14:33:01.8297336Z 
2026-06-04T14:33:01.8297800Z ### REQ-API-3
2026-06-04T14:33:01.8298466Z - Title: commune/signoff are file-drops, not commands
2026-06-04T14:33:01.8298976Z - Required stages: impl, unit, int
2026-06-04T14:33:01.8298996Z 
2026-06-04T14:33:01.8299776Z ### REQ-START-1
2026-06-04T14:33:01.8300746Z - Title: Adapters never resolve SPT_HOME; binary on PATH; api bridging only
2026-06-04T14:33:01.8301273Z - Required stages: impl, unit
2026-06-04T14:33:01.8301293Z 
2026-06-04T14:33:01.8301737Z ### REQ-START-2
2026-06-04T14:33:01.8302400Z - Title: Harness-hosted startup: api seed then listen
2026-06-04T14:33:01.8302919Z - Required stages: impl, unit, int
2026-06-04T14:33:01.8302939Z 
2026-06-04T14:33:01.8303371Z ### REQ-START-3
2026-06-04T14:33:01.8304218Z - Title: spt-hosted startup: spawn-session then api bind (no file)
2026-06-04T14:33:01.8304724Z - Required stages: impl, unit, int
2026-06-04T14:33:01.8304758Z 
2026-06-04T14:33:01.8305193Z ### REQ-START-4
2026-06-04T14:33:01.8305848Z - Title: Adapter-injected env aliases (SPT/OWL/LIVE)
2026-06-04T14:33:01.8306351Z - Required stages: impl, unit
2026-06-04T14:33:01.8306373Z 
2026-06-04T14:33:01.8306812Z ### REQ-EP-1
2026-06-04T14:33:01.8307427Z - Title: Day-one endpoint types; open type system
2026-06-04T14:33:01.8307933Z - Required stages: impl, unit
2026-06-04T14:33:01.8307953Z 
2026-06-04T14:33:01.8308746Z ### REQ-EP-2
2026-06-04T14:33:01.8309787Z - Title: Agent endpoints vs Shells distinction in the type model
2026-06-04T14:33:01.8310445Z - Required stages: impl, unit
2026-06-04T14:33:01.8310467Z 
2026-06-04T14:33:01.8310891Z ### REQ-EP-3
2026-06-04T14:33:01.8311828Z - Title: Messaging payloads carry typed operation commands + file blobs
2026-06-04T14:33:01.8312331Z - Required stages: impl, unit
2026-06-04T14:33:01.8312352Z 
2026-06-04T14:33:01.8312778Z ### REQ-EP-4
2026-06-04T14:33:01.8313486Z - Title: PresenceChannel broker endpoint (seam day-one)
2026-06-04T14:33:01.8313981Z - Required stages: impl, unit
2026-06-04T14:33:01.8314003Z 
2026-06-04T14:33:01.8314436Z ### REQ-EP-5
2026-06-04T14:33:01.8318268Z - Title: Concrete shell instantiation model: spawn-mints-instance (vs relink/online), registered-on-node permission + broadcast-is-discovery, per-shell require_approval gate, max_instances_per_owner + over_cap, instance aliasing, discovery scope
2026-06-04T14:33:01.8318741Z - Required stages: 
2026-06-04T14:33:01.8318775Z 
2026-06-04T14:33:01.8319255Z ### REQ-INST-1
2026-06-04T14:33:01.8320314Z - Title: endpoint ID vs instance split (adapter-agnostic ID)
2026-06-04T14:33:01.8320778Z - Required stages: 
2026-06-04T14:33:01.8320796Z 
2026-06-04T14:33:01.8321237Z ### REQ-INST-2
2026-06-04T14:33:01.8321787Z - Title: Per-node files, synced Psyche mind
2026-06-04T14:33:01.8322286Z - Required stages: impl, unit
2026-06-04T14:33:01.8322308Z 
2026-06-04T14:33:01.8322741Z ### REQ-INST-3
2026-06-04T14:33:01.8323455Z - Title: Dormant (warm) / suspended (cold) resting states
2026-06-04T14:33:01.8323963Z - Required stages: doc, impl, unit
2026-06-04T14:33:01.8323994Z 
2026-06-04T14:33:01.8324425Z ### REQ-INST-4
2026-06-04T14:33:01.8325453Z - Title: active to dormant/suspended fires a transition echo commune
2026-06-04T14:33:01.8325947Z - Required stages: impl, unit
2026-06-04T14:33:01.8325968Z 
2026-06-04T14:33:01.8326412Z ### REQ-INST-5
2026-06-04T14:33:01.8327279Z - Title: Two-tier context sync (live to all, project to same-project)
2026-06-04T14:33:01.8327803Z - Required stages: impl, unit
2026-06-04T14:33:01.8327824Z 
2026-06-04T14:33:01.8328266Z ### REQ-INST-6
2026-06-04T14:33:01.8329244Z - Title: Deferred messages not delivered to dormant/suspended instances
2026-06-04T14:33:01.8330066Z - Required stages: 
2026-06-04T14:33:01.8330088Z 
2026-06-04T14:33:01.8330522Z ### REQ-INST-7
2026-06-04T14:33:01.8331176Z - Title: Subnet registry + bare-id resolution policy
2026-06-04T14:33:01.8331679Z - Required stages: impl, unit
2026-06-04T14:33:01.8331699Z 
2026-06-04T14:33:01.8332128Z ### REQ-INST-8
2026-06-04T14:33:01.8332866Z - Title: Remote-control mode distinct from local operation
2026-06-04T14:33:01.8333364Z - Required stages: impl, unit
2026-06-04T14:33:01.8333397Z 
2026-06-04T14:33:01.8333833Z ### REQ-INST-9
2026-06-04T14:33:01.8334763Z - Title: Multi-subnet membership (same-user N subnets; cross-user seam)
2026-06-04T14:33:01.8335253Z - Required stages: impl, unit
2026-06-04T14:33:01.8335277Z 
2026-06-04T14:33:01.8335727Z ### REQ-INST-10
2026-06-04T14:33:01.8336785Z - Title: Qualified addressing [subnet:]id[@node] + ambiguity forces qualification
2026-06-04T14:33:01.8337283Z - Required stages: impl, unit
2026-06-04T14:33:01.8337304Z 
2026-06-04T14:33:01.8337740Z ### REQ-INST-11
2026-06-04T14:33:01.8338801Z - Title: spt rename <id> rippled to all instances (collision-checked, 6.5-reconciled)
2026-06-04T14:33:01.8339328Z - Required stages: impl, unit
2026-06-04T14:33:01.8339349Z 
2026-06-04T14:33:01.8340129Z ### REQ-INST-12
2026-06-04T14:33:01.8341652Z - Title: Endpoint visibility per-(endpoint,subnet): excluded semantics, OR-of-defaults + override, gates sync
2026-06-04T14:33:01.8342146Z - Required stages: impl, unit
2026-06-04T14:33:01.8342178Z 
2026-06-04T14:33:01.8342607Z ### REQ-INST-13
2026-06-04T14:33:01.8343507Z - Title: Subnet-exclusive sync + per-endpoint subnet-membership list
2026-06-04T14:33:01.8343996Z - Required stages: impl, unit
2026-06-04T14:33:01.8344016Z 
2026-06-04T14:33:01.8344607Z ### REQ-INST-14
2026-06-04T14:33:01.8346655Z - Title: Resource advertisement (subnet resource registry): free-text blurb, both-authored, registry projection, visibility/whitelist-gated
2026-06-04T14:33:01.8347185Z - Required stages: doc, impl, unit
2026-06-04T14:33:01.8347206Z 
2026-06-04T14:33:01.8347651Z ### REQ-INST-15
2026-06-04T14:33:01.8352108Z - Title: Immutable home subnet (assigned at creation: auto-if-one/ask-if-many) + spt fork (cross-subnet clone to a new identity, copy-then-diverge, not re-home); adapter chosen at creation from registered hostable adapters, changed only via launch/resume-under-new (ADR-0010)
2026-06-04T14:33:01.8352639Z - Required stages: doc, impl, unit
2026-06-04T14:33:01.8352659Z 
2026-06-04T14:33:01.8353119Z ### REQ-REACH-1
2026-06-04T14:33:01.8353817Z - Title: Off-node remote-drive detection + file transfer
2026-06-04T14:33:01.8354326Z - Required stages: impl, unit
2026-06-04T14:33:01.8354346Z 
2026-06-04T14:33:01.8354779Z ### REQ-REACH-2
2026-06-04T14:33:01.8355534Z - Title: Remote command execution (deferred, consent-gated)
2026-06-04T14:33:01.8356026Z - Required stages: 
2026-06-04T14:33:01.8356047Z 
2026-06-04T14:33:01.8356486Z ### REQ-MSG-1
2026-06-04T14:33:01.8359001Z - Title: Local message delivery: TCP-first to a registered address, spool fallback when offline; id->address via registry (stale-clean first); reply routing (__REPLY_TO__)
2026-06-04T14:33:01.8359857Z - Required stages: impl, unit, int
2026-06-04T14:33:01.8359879Z 
2026-06-04T14:33:01.8360324Z ### REQ-MSG-2
2026-06-04T14:33:01.8361719Z - Title: spt binary CLI surface: send/ring/ready/poll/list/stop/whoami, stable arg shapes + exit codes
2026-06-04T14:33:01.8362216Z - Required stages: impl, unit
2026-06-04T14:33:01.8362428Z 
2026-06-04T14:33:01.8362880Z ### REQ-MSG-3
2026-06-04T14:33:01.8364949Z - Title: Ready-agent lifecycle: register perch (info.json + listener + registry address) on ready, drain spooled backlog on startup, clean teardown
2026-06-04T14:33:01.8365464Z - Required stages: impl, unit, int
2026-06-04T14:33:01.8365496Z 
2026-06-04T14:33:01.8365965Z ### REQ-NODE-IDENTITY
2026-06-04T14:33:01.8367110Z - Title: Ed25519 identity primitive: keypair, detached sign/verify, stable pubkey<->hex
2026-06-04T14:33:01.8367620Z - Required stages: impl, unit
2026-06-04T14:33:01.8367641Z 
2026-06-04T14:33:01.8368068Z ### REQ-NET-1
2026-06-04T14:33:01.8368988Z - Title: WAN messaging first-class, behind default-on net feature flag
2026-06-04T14:33:01.8369534Z - Required stages: impl, unit
2026-06-04T14:33:01.8369557Z 
2026-06-04T14:33:01.8369993Z ### REQ-NET-2
2026-06-04T14:33:01.8370876Z - Title: n0 relay default + self-host knob + plain-language disclosure
2026-06-04T14:33:01.8371345Z - Required stages: impl
2026-06-04T14:33:01.8371381Z 
2026-06-04T14:33:01.8371819Z ### REQ-NET-3
2026-06-04T14:33:01.8372632Z - Title: Cross-node Psyche sync over P2P replaces gh-repo-sync
2026-06-04T14:33:01.8373125Z - Required stages: impl, unit
2026-06-04T14:33:01.8373145Z 
2026-06-04T14:33:01.8373599Z ### REQ-PAIR-1
2026-06-04T14:33:01.8374127Z - Title: TOTP-seeded SPAKE2 pairing
2026-06-04T14:33:01.8374629Z - Required stages: impl, unit
2026-06-04T14:33:01.8374649Z 
2026-06-04T14:33:01.8375098Z ### REQ-PAIR-2
2026-06-04T14:33:01.8375743Z - Title: Local trust store with TOFU + warn-on-change
2026-06-04T14:33:01.8376241Z - Required stages: impl, unit
2026-06-04T14:33:01.8376264Z 
2026-06-04T14:33:01.8376701Z ### REQ-PAIR-3
2026-06-04T14:33:01.8377418Z - Title: Fetch current pairing code from any paired node
2026-06-04T14:33:01.8377911Z - Required stages: impl, unit
2026-06-04T14:33:01.8377931Z 
2026-06-04T14:33:01.8378385Z ### REQ-PAIR-4
2026-06-04T14:33:01.8378918Z - Title: Subnet naming on first pairing
2026-06-04T14:33:01.8379442Z - Required stages: impl, unit
2026-06-04T14:33:01.8379479Z 
2026-06-04T14:33:01.8379928Z ### REQ-PAIR-5
2026-06-04T14:33:01.8381528Z - Title: Multi-subnet pairing: subnet-name discovery input, create-new-names-up-front, rendezvous-token hashing
2026-06-04T14:33:01.8382032Z - Required stages: impl, unit
2026-06-04T14:33:01.8382196Z 
2026-06-04T14:33:01.8382659Z ### REQ-PAIR-6
2026-06-04T14:33:01.8383996Z - Title: Elevation-gated per-subnet code fetch (UAC/root or elevated agent; else authenticator app)
2026-06-04T14:33:01.8384503Z - Required stages: impl, unit
2026-06-04T14:33:01.8384524Z 
2026-06-04T14:33:01.8384964Z ### REQ-PAIR-7
2026-06-04T14:33:01.8385769Z - Title: Subnet icon (inline image metadata, GUI-only consumer)
2026-06-04T14:33:01.8386236Z - Required stages: 
2026-06-04T14:33:01.8386256Z 
2026-06-04T14:33:01.8386686Z ### REQ-SEC-1
2026-06-04T14:33:01.8388850Z - Title: Per-endpoint access whitelist: origin-node gate, stateful-firewall (reply/outbound exempt), node-now/user-later, outer gate before grants
2026-06-04T14:33:01.8389395Z - Required stages: impl, unit
2026-06-04T14:33:01.8389416Z 
2026-06-04T14:33:01.8389867Z ### REQ-NOTIF-1
2026-06-04T14:33:01.8391843Z - Title: Notification primitive: per-subnet replicated spool, seen/dismissed, resurface-at-boundary, subsumes update+consent prompts
2026-06-04T14:33:01.8392352Z - Required stages: impl, unit
2026-06-04T14:33:01.8392373Z 
2026-06-04T14:33:01.8392815Z ### REQ-NOTIF-2
2026-06-04T14:33:01.8394200Z - Title: spt notify (agent-issued subnet notif) + notif_command manifest seam (harness + shell adapters)
2026-06-04T14:33:01.8394724Z - Required stages: doc, impl, unit
2026-06-04T14:33:01.8394744Z 
2026-06-04T14:33:01.8395183Z ### REQ-UPD-1
2026-06-04T14:33:01.8395735Z - Title: Peer-propagated update over P2P
2026-06-04T14:33:01.8396239Z - Required stages: impl, unit
2026-06-04T14:33:01.8396260Z 
2026-06-04T14:33:01.8396689Z ### REQ-UPD-2
2026-06-04T14:33:01.8397384Z - Title: All binaries signature-verified before handoff
2026-06-04T14:33:01.8397889Z - Required stages: impl, unit
2026-06-04T14:33:01.8398057Z 
2026-06-04T14:33:01.8398501Z ### REQ-UPD-3
2026-06-04T14:33:01.8399402Z - Title: No endpoint process terminates/suspends during self-update
2026-06-04T14:33:01.8399922Z - Required stages: impl, unit, int
2026-06-04T14:33:01.8399946Z 
2026-06-04T14:33:01.8400399Z ### REQ-UPD-4
2026-06-04T14:33:01.8401307Z - Title: Update gated on user confirmation by default; opt-in full-auto
2026-06-04T14:33:01.8401816Z - Required stages: impl, unit
2026-06-04T14:33:01.8401837Z 
2026-06-04T14:33:01.8402275Z ### REQ-UPD-5
2026-06-04T14:33:01.8402941Z - Title: spt-core ripple-updates registered adapters
2026-06-04T14:33:01.8403444Z - Required stages: impl, unit
2026-06-04T14:33:01.8403466Z 
2026-06-04T14:33:01.8403913Z ### REQ-TERM-1
2026-06-04T14:33:01.8404812Z - Title: Process-supervisor terminal wrapper hosting broker PTYs
2026-06-04T14:33:01.8405339Z - Required stages: impl, unit
2026-06-04T14:33:01.8405364Z 
2026-06-04T14:33:01.8405817Z ### REQ-TERM-2
2026-06-04T14:33:01.8406751Z - Title: session-surface abstraction; send-keys + send-line injection
2026-06-04T14:33:01.8407275Z - Required stages: impl, unit
2026-06-04T14:33:01.8407294Z 
2026-06-04T14:33:01.8407741Z ### REQ-TERM-3
2026-06-04T14:33:01.8408419Z - Title: Byte-stream remote terminal streaming for v1
2026-06-04T14:33:01.8408928Z - Required stages: impl, unit
2026-06-04T14:33:01.8408948Z 
2026-06-04T14:33:01.8409444Z ### REQ-TERM-4
2026-06-04T14:33:01.8411383Z - Title: Live activity buffer (PTY digest): adapter-supplied patterns over broker PTY, spt digest pull + delta-stream, opt-in Path-B log
2026-06-04T14:33:01.8411912Z - Required stages: impl, unit, int
2026-06-04T14:33:01.8411932Z 
2026-06-04T14:33:01.8412376Z ### REQ-FRONT-1
2026-06-04T14:33:01.8413229Z - Title: Day-one launcher/manager frontend (list/launch/attach/init)
2026-06-04T14:33:01.8413692Z - Required stages: 
2026-06-04T14:33:01.8413710Z 
2026-06-04T14:33:01.8414157Z ### REQ-INSTALL-1
2026-06-04T14:33:01.8415135Z - Title: Two install paths; signed one-line script; OS-service registration
2026-06-04T14:33:01.8415618Z - Required stages: 
2026-06-04T14:33:01.8415637Z 
2026-06-04T14:33:01.8416075Z ### REQ-INSTALL-2
2026-06-04T14:33:01.8416740Z - Title: Marketplace-repackaging-friendly install
2026-06-04T14:33:01.8417193Z - Required stages: 
2026-06-04T14:33:01.8417391Z 
2026-06-04T14:33:01.8417855Z ### REQ-INSTALL-3
2026-06-04T14:33:01.8418525Z - Title: Idempotent + interactive-optional first run
2026-06-04T14:33:01.8418980Z - Required stages: 
2026-06-04T14:33:01.8419000Z 
2026-06-04T14:33:01.8419494Z ### REQ-INSTALL-4
2026-06-04T14:33:01.8423109Z - Title: Adapter registration lifecycle: spt adapter add (--github, manifest-first, install-is-first-update) + soft-deregister remove + optional manifest uninstall template; node-local registered-adapter set self-update ripples over
2026-06-04T14:33:01.8423585Z - Required stages: 
2026-06-04T14:33:01.8423602Z 
2026-06-04T14:33:01.8424059Z ### REQ-MIGRATE-1
2026-06-04T14:33:01.8424893Z - Title: Auto-detect and migrate a legacy claude_skill_owl install
2026-06-04T14:33:01.8425378Z - Required stages: 
2026-06-04T14:33:01.8425399Z 
2026-06-04T14:33:01.8425835Z ### REQ-INFRA-1
2026-06-04T14:33:01.8426740Z - Title: GitHub issue tracking for v1; tangled.org as migration target
2026-06-04T14:33:01.8427200Z - Required stages: 
2026-06-04T14:33:01.8427247Z 
2026-06-04T14:33:01.8427679Z ### REQ-DOCS-1
2026-06-04T14:33:01.8428684Z - Title: Dual-audience docs (human + AI dev-agent), markdown once / two depths
2026-06-04T14:33:01.8429146Z - Required stages: 
2026-06-04T14:33:01.8429200Z 
2026-06-04T14:33:01.8429648Z ### REQ-DOCS-2
2026-06-04T14:33:01.8430442Z - Title: Sub-10-minute runnable killer quickstart per audience
2026-06-04T14:33:01.8430913Z - Required stages: 
2026-06-04T14:33:01.8430934Z 
2026-06-04T14:33:01.8431380Z ### REQ-DOCS-3
2026-06-04T14:33:01.8432356Z - Title: Diátaxis structure; one canonical way to do X
2026-06-04T14:33:01.8432827Z - Required stages: 
2026-06-04T14:33:01.8432848Z 
2026-06-04T14:33:01.8433283Z ### REQ-DOCS-4
2026-06-04T14:33:01.8434486Z - Title: Agent-consumable layer (llms.txt, manifest schema, MCP, CLI help)
2026-06-04T14:33:01.8435273Z - Required stages: 
2026-06-04T14:33:01.8435300Z 
2026-06-04T14:33:01.8435919Z ### REQ-DOCS-5
2026-06-04T14:33:01.8437014Z - Title: Anti-drift: rustdoc/schema/exports/CLI-help generated + CI-checked
2026-06-04T14:33:01.8437709Z - Required stages: 
2026-06-04T14:33:01.8437736Z 
2026-06-04T14:33:01.8438271Z ### REQ-HAZARD-GRACE-BEFORE-SIGNOFF
2026-06-04T14:33:01.8439288Z - Title: Grace-period wait completes before composing INIT_SIGNOFF (1.1)
2026-06-04T14:33:01.8439800Z - Required stages: impl, unit
2026-06-04T14:33:01.8439823Z 
2026-06-04T14:33:01.8440351Z ### REQ-HAZARD-INFO-JSON-TORN-READ
2026-06-04T14:33:01.8441086Z - Title: State-file reads tolerate concurrent writes (1.2)
2026-06-04T14:33:01.8441581Z - Required stages: impl, unit
2026-06-04T14:33:01.8441601Z 
2026-06-04T14:33:01.8442124Z ### REQ-HAZARD-STALE-INDEX-LOCK
2026-06-04T14:33:01.8442758Z - Title: Sweep stale lockfiles on daemon boot (1.3)
2026-06-04T14:33:01.8443244Z - Required stages: 
2026-06-04T14:33:01.8443266Z 
2026-06-04T14:33:01.8443766Z ### REQ-HAZARD-DEFERRED-DRAIN
2026-06-04T14:33:01.8444702Z - Title: Deferred spool rows excluded from the event-stream drain (1.4)
2026-06-04T14:33:01.8445207Z - Required stages: impl, unit
2026-06-04T14:33:01.8445239Z 
2026-06-04T14:33:01.8445729Z ### REQ-HAZARD-WORKER-PATH
2026-06-04T14:33:01.8446637Z - Title: Single source of truth for Worker/Psyche perch location (1.5)
2026-06-04T14:33:01.8447129Z - Required stages: impl, unit
2026-06-04T14:33:01.8447149Z 
2026-06-04T14:33:01.8447684Z ### REQ-HAZARD-PARENT-PID-PREFER
2026-06-04T14:33:01.8448628Z - Title: Prefer stable parent PID / broker handle over ephemeral PID (2.1)
2026-06-04T14:33:01.8449098Z - Required stages: 
2026-06-04T14:33:01.8449117Z 
2026-06-04T14:33:01.8449674Z ### REQ-HAZARD-STDIN-SESSION-ID
2026-06-04T14:33:01.8450314Z - Title: Stdin session_id precedence over env (2.2)
2026-06-04T14:33:01.8450781Z - Required stages: 
2026-06-04T14:33:01.8450815Z 
2026-06-04T14:33:01.8451346Z ### REQ-HAZARD-HANDOFF-ARGV-COMPAT
2026-06-04T14:33:01.8452153Z - Title: Broker/brain IPC + handoff argv version-tolerant (2.3)
2026-06-04T14:33:01.8452648Z - Required stages: impl, unit
2026-06-04T14:33:01.8452670Z 
2026-06-04T14:33:01.8453375Z ### REQ-HAZARD-GEN-START-NOW
2026-06-04T14:33:01.8454104Z - Title: gen_start = now() on cold-start and handoff (2.4)
2026-06-04T14:33:01.8454596Z - Required stages: impl, int
2026-06-04T14:33:01.8454616Z 
2026-06-04T14:33:01.8455151Z ### REQ-HAZARD-EPHEMERAL-CLEANUP
2026-06-04T14:33:01.8455958Z - Title: Ephemeral perch cleanup on every ring exit path (3.1)
2026-06-04T14:33:01.8456453Z - Required stages: impl, unit
2026-06-04T14:33:01.8456474Z 
2026-06-04T14:33:01.8457032Z ### REQ-HAZARD-STALE-SIGNOFF-SENTINEL
2026-06-04T14:33:01.8457846Z - Title: Stale signoff sentinel does not kill a fresh start (3.2)
2026-06-04T14:33:01.8458350Z - Required stages: impl, unit
2026-06-04T14:33:01.8458370Z 
2026-06-04T14:33:01.8458919Z ### REQ-HAZARD-ECHO-BEFORE-SIGNOFF
2026-06-04T14:33:01.8459894Z - Title: Echo-commune fires before INIT_SIGNOFF on orphan teardown (3.3)
2026-06-04T14:33:01.8460396Z - Required stages: impl, unit
2026-06-04T14:33:01.8460418Z 
2026-06-04T14:33:01.8460955Z ### REQ-HAZARD-ENVELOPE-DECODE-ORDER
2026-06-04T14:33:01.8461739Z - Title: Envelope decode order, ampersand decoded last (4.1)
2026-06-04T14:33:01.8462242Z - Required stages: impl, unit
2026-06-04T14:33:01.8462265Z 
2026-06-04T14:33:01.8462790Z ### REQ-HAZARD-ENVELOPE-PARSER-SAFE
2026-06-04T14:33:01.8463665Z - Title: Two-slice envelope parser is panic-free and tolerant (4.2)
2026-06-04T14:33:01.8464159Z - Required stages: impl, unit
2026-06-04T14:33:01.8464179Z 
2026-06-04T14:33:01.8464716Z ### REQ-HAZARD-EVENTPART-REASSEMBLY
2026-06-04T14:33:01.8465813Z - Title: EVENT-PART split/reassembly is byte-exact; orphan parts dropped silently
2026-06-04T14:33:01.8466304Z - Required stages: impl, unit
2026-06-04T14:33:01.8466326Z 
2026-06-04T14:33:01.8466978Z ### REQ-HAZARD-ID-CHARSET
2026-06-04T14:33:01.8468260Z - Title: Addressable-id charset reserves :/@ delimiters; validated at every creation seam (4.6)
2026-06-04T14:33:01.8468769Z - Required stages: impl, unit
2026-06-04T14:33:01.8468790Z 
2026-06-04T14:33:01.8469367Z ### REQ-HAZARD-REGISTRY-STALE-CLEAN
2026-06-04T14:33:01.8470342Z - Title: Stale registry entries degrade to fallback, never hard-fail (4.3)
2026-06-04T14:33:01.8470845Z - Required stages: impl, unit
2026-06-04T14:33:01.8470864Z 
2026-06-04T14:33:01.8471384Z ### REQ-HAZARD-REGISTRY-CONCURRENT
2026-06-04T14:33:01.8472702Z - Title: Concurrent SQLite openers (registry/spool) must not fail with 'database is locked' (4.7)
2026-06-04T14:33:01.8473207Z - Required stages: impl, unit
2026-06-04T14:33:01.8473226Z 
2026-06-04T14:33:01.8473751Z ### REQ-HAZARD-REGISTRY-DIR-CREATE
2026-06-04T14:33:01.8475589Z - Title: SQLite store opens create their parent dir themselves — a fresh-home registry op must not SQLITE_CANTOPEN (4.9)
2026-06-04T14:33:01.8476123Z - Required stages: doc, impl, unit
2026-06-04T14:33:01.8476144Z 
2026-06-04T14:33:01.8476686Z ### REQ-HAZARD-REGISTRY-EPOCH-LEASE
2026-06-04T14:33:01.8478849Z - Title: Registry merge ordered by per-node monotonic epoch, never wall-clock — a stale Active can't clobber a newer Offline (4.8, red-team #8)
2026-06-04T14:33:01.8479415Z - Required stages: impl, unit
2026-06-04T14:33:01.8479440Z 
2026-06-04T14:33:01.8479996Z ### REQ-HAZARD-DEFERRED-SURVIVE-DRAIN
2026-06-04T14:33:01.8480601Z - Title: Deferred rows survive poll drain (4.4)
2026-06-04T14:33:01.8481106Z - Required stages: impl, unit
2026-06-04T14:33:01.8481126Z 
2026-06-04T14:33:01.8481637Z ### REQ-HAZARD-INBOX-NO-DOUBLE
2026-06-04T14:33:01.8482262Z - Title: No double-delivery via legacy inbox (4.5)
2026-06-04T14:33:01.8482766Z - Required stages: impl, unit
2026-06-04T14:33:01.8482785Z 
2026-06-04T14:33:01.8483307Z ### REQ-HAZARD-WINDOWS-PID-RECYCLE
2026-06-04T14:33:01.8484089Z - Title: Windows PID-recycling false positives guarded (5.1)
2026-06-04T14:33:01.8484625Z - Required stages: impl, unit
2026-06-04T14:33:01.8484647Z 
2026-06-04T14:33:01.8485188Z ### REQ-HAZARD-EBUSY-RENAME
2026-06-04T14:33:01.8486009Z - Title: tmp-write + atomic-rename + retry on Windows EBUSY (5.2)
2026-06-04T14:33:01.8486500Z - Required stages: impl, unit
2026-06-04T14:33:01.8486720Z 
2026-06-04T14:33:01.8487269Z ### REQ-HAZARD-SUBPROCESS-TIMEOUT
2026-06-04T14:33:01.8487978Z - Title: Every harness/git subprocess has a timeout (5.3)
2026-06-04T14:33:01.8488486Z - Required stages: impl, unit
2026-06-04T14:33:01.8488506Z 
2026-06-04T14:33:01.8489018Z ### REQ-HAZARD-UNC-PATH-STRIP
2026-06-04T14:33:01.8489808Z - Title: Strip Windows UNC prefix on serialized paths (5.4)
2026-06-04T14:33:01.8490314Z - Required stages: impl, unit
2026-06-04T14:33:01.8490337Z 
2026-06-04T14:33:01.8490863Z ### REQ-HAZARD-SINGLE-PATH-SOURCE
2026-06-04T14:33:01.8491800Z - Title: Single path/registry source of truth; no layout ambiguity (6.1)
2026-06-04T14:33:01.8492298Z - Required stages: impl, unit
2026-06-04T14:33:01.8492332Z 
2026-06-04T14:33:01.8492816Z ### REQ-HAZARD-SOFT-CLEANUP
2026-06-04T14:33:01.8493800Z - Title: Soft-cleanup preserves state, removes only the ready marker (6.2)
2026-06-04T14:33:01.8494290Z - Required stages: impl, unit
2026-06-04T14:33:01.8494322Z 
2026-06-04T14:33:01.8494855Z ### REQ-HAZARD-CASCADE-WIPE-GUARD
2026-06-04T14:33:01.8495717Z - Title: No hard-delete of a parent hosting non-empty children (6.3)
2026-06-04T14:33:01.8496208Z - Required stages: impl, unit
2026-06-04T14:33:01.8496227Z 
2026-06-04T14:33:01.8496787Z ### REQ-HAZARD-DROP-FILE-SINGLE-WRITER
2026-06-04T14:33:01.8497490Z - Title: Drop files are daemon-owned single-writer (6.4)
2026-06-04T14:33:01.8497995Z - Required stages: impl, unit
2026-06-04T14:33:01.8498013Z 
2026-06-04T14:33:01.8498578Z ### REQ-HAZARD-DIRECT-WRITE-PRECEDENCE
2026-06-04T14:33:01.8499721Z - Title: Direct-write precedence marker (with node id) guards stale overwrite (6.5)
2026-06-04T14:33:01.8500236Z - Required stages: impl, unit
2026-06-04T14:33:01.8500426Z 
2026-06-04T14:33:01.8500987Z ### REQ-HAZARD-CONFLICT-BOTH-PRESERVED
2026-06-04T14:33:01.8504212Z - Title: A surfaced concurrent context pair is durably preserved (both versions, tracked artifacts) until a strictly dominating write clears it; no reconcile failure path discards an unmerged version (6.6, ADR-0013)
2026-06-04T14:33:01.8504743Z - Required stages: impl, unit
2026-06-04T14:33:01.8504765Z 
2026-06-04T14:33:01.8505241Z ### REQ-HAZARD-CONPTY-DSR
2026-06-04T14:33:01.8506346Z - Title: ConPTY reader must auto-answer DSR (ESC[6n) or all child output stalls (5.5)
2026-06-04T14:33:01.8506838Z - Required stages: impl, unit
2026-06-04T14:33:01.8506873Z 
2026-06-04T14:33:01.8507379Z ### REQ-HAZARD-LOCAL-API-AUTH
2026-06-04T14:33:01.8508467Z - Title: Every local `api` mutation authenticated to an endpoint/session (codex #13)
2026-06-04T14:33:01.8508967Z - Required stages: impl, unit
2026-06-04T14:33:01.8508985Z 
2026-06-04T14:33:01.8509552Z ### REQ-HAZARD-RESTART-IDEMPOTENT
2026-06-04T14:33:01.8510959Z - Title: Idempotent/exactly-once delivery across brain restart at every broker boundary (codex #14)
2026-06-04T14:33:01.8511485Z - Required stages: impl, unit, int
2026-06-04T14:33:01.8511505Z 
2026-06-04T14:33:01.8512018Z ### REQ-HAZARD-UPDATE-ROLLBACK
2026-06-04T14:33:01.8513383Z - Title: Self-update rejects version rollback; metadata expiry + adapter content signing (codex #5)
2026-06-04T14:33:01.8513892Z - Required stages: impl, unit
2026-06-04T14:33:01.8513912Z 
2026-06-04T14:33:01.8514453Z ### REQ-HAZARD-DAEMON-HOSTED-LIVENESS
2026-06-04T14:33:01.8516802Z - Title: Daemon-hosted perches (Psyche, spt-hosted Self) derive liveness from the daemon endpoint table + info.json status, never is_process_alive(info.pid) (2.5)
2026-06-04T14:33:01.8517322Z - Required stages: impl, unit, int
2026-06-04T14:33:01.8517342Z 
2026-06-04T14:33:01.8517877Z ### REQ-HAZARD-PSYCHE-OUTBOUND-PROXY
2026-06-04T14:33:01.8522104Z - Title: Psyche outbound captured + sanitized: the live-Psyche turn driver captures stdout (never Stdio::null), and the daemon strips/re-stamps Psyche-supplied from=/target and constrains routing (reply→__REPLY_TO__ sender, notify→own user/subnet) (7.3)
2026-06-04T14:33:01.8522653Z - Required stages: impl, unit
2026-06-04T14:33:01.8522676Z 
2026-06-04T14:33:01.8523221Z ### REQ-HAZARD-DAEMON-SCHED-NONBLOCKING
2026-06-04T14:33:01.8527725Z - Title: Per-agent pulse/psyche/echo-commune scheduling must not serialize across agents: each agent's bounded LLM call (echo-commune summarizer, Psyche turn) runs off the shared scheduler so one slow/hung call cannot stall another agent's tick (7.4)
2026-06-04T14:33:01.8528314Z - Required stages: 
2026-06-04T14:33:01.8528367Z 
2026-06-04T14:33:01.8529010Z ### REQ-HAZARD-PAIR-TRANSCRIPT-BIND
2026-06-04T14:33:01.8533191Z - Title: Pairing transcript binds roles, both node pubkeys, subnet ID, seed epoch, TOTP time-step, and confirmation MACs — or unknown-key-share/reflection/wrong-subnet/replay pairing remain possible (ADR-0005 #12)
2026-06-04T14:33:01.8533847Z - Required stages: impl, unit
2026-06-04T14:33:01.8533936Z 
2026-06-04T14:33:01.8534720Z ### REQ-HAZARD-PAIR-SEED-ROTATION
2026-06-04T14:33:01.8538202Z - Title: Removing a node rotates the subnet seed (epoch bump) so an old node/old seed cannot rejoin; trust-store delete alone is NOT revocation because the seed is replicated to every trusted node (ADR-0005 #10)
2026-06-04T14:33:01.8538997Z - Required stages: impl, unit
2026-06-04T14:33:01.8539025Z 
2026-06-04T14:33:01.8539953Z ### REQ-HAZARD-PAIR-RATE-LIMIT
2026-06-04T14:33:01.8545088Z - Title: Subnet-global pairing rate limit: one active ceremony per subnet, shared attempt counter, exponential backoff — a public pre-trust relay + multiple seed-holders otherwise enables distributed SPAKE2 guessing (and ±1 TOTP window triples the valid-password space) (ADR-0005 #11)
2026-06-04T14:33:01.8545796Z - Required stages: impl, unit
2026-06-04T14:33:01.8545820Z 
2026-06-04T14:33:01.8546517Z ### REQ-HAZARD-WAN-ORIGIN-AUTH
2026-06-04T14:33:01.8551085Z - Title: WAN-inbound origin is transport truth, never payload: the access gate's subject (ADR-0009 origin-node whitelist) is the QUIC handshake-proven remote node id from the broker's conn/stream table — a forged origin/node field inside record bytes is inert (7.5)
2026-06-04T14:33:01.8552032Z - Required stages: doc, impl, unit
2026-06-04T14:33:01.8552088Z 
2026-06-04T14:33:01.8559842Z ## How to report back
2026-06-04T14:33:01.8559915Z 
2026-06-04T14:33:01.8560846Z For every (requirement, failing criterion) pair, emit one finding:
2026-06-04T14:33:01.8560876Z 
2026-06-04T14:33:01.8561299Z     {
2026-06-04T14:33:01.8561795Z       "code": "requirement_quality",
2026-06-04T14:33:01.8562300Z       "requirementId": "REQ-...",
2026-06-04T14:33:01.8563159Z       "criterion": "singular" | "verifiable" | "atomic" | "active-voice",
2026-06-04T14:33:01.8563649Z       "message": "<short reason>",
2026-06-04T14:33:01.8564237Z       "suggestedRevision": "<optional rewrite>"
2026-06-04T14:33:01.8564650Z     }
2026-06-04T14:33:01.8564669Z 
2026-06-04T14:33:01.8565680Z Wrap your response as { "findings": [ ... ] } listing only your concerns; the
2026-06-04T14:33:01.8566406Z deterministic findings above don't need to be repeated.
